package com.shrct.businessprocess.purchase;

import com.shrct.businessprocess.project.RCProjectMoney;
import com.shrct.businessprocess.purchase.RCBasePurchaseOrderAccept;
import com.shrct.businessprocess.purchase.RCPurchaseOrder;
import com.shrct.businessprocess.purchase.RCPurchaseOrderAcceptItem;
import com.shrct.businessprocess.purchase.impl.RCPurchaseOrderAcceptImpl;
import com.shrct.businessprocess.purchase.proxy.RCPurchaseOrderAcceptProxy;
import edu.fudan.mylang.pf.EntityImplementation;
import java.util.Collection;
import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;

@EntityImplementation(implementBy = RCPurchaseOrderAcceptImpl.class)
public interface RCPurchaseOrderAccept extends RCBasePurchaseOrderAccept {
  public abstract RCPurchaseOrder getPurchaseOrder();
  
  public abstract RCPurchaseOrderAccept setPurchaseOrder(final RCPurchaseOrder purchaseOrder);
  
  public abstract Collection<RCPurchaseOrderAcceptItem> getAcceptItems();
  
  public abstract RCPurchaseOrderAcceptItem createAndAddtoAcceptItems();
  
  public abstract RCPurchaseOrderAcceptItem createAndAddtoAcceptItems(final Procedure1<RCPurchaseOrderAcceptItem> updater);
  
  public abstract RCPurchaseOrderAccept removeFromAcceptItems(final RCPurchaseOrderAcceptItem rCPurchaseOrderAcceptItem);
  
  public abstract RCPurchaseOrderAccept removeAllAcceptItems();
  
  /**
   * 到货总金额
   */
  public abstract RCProjectMoney getTotalAmount();
  
  public abstract RCPurchaseOrderAcceptProxy toProxy();
}
